/**
  * @file Administrativo.java
  * @brief Clase Administrativo
  * @author Jose Antonio Lozano
  * @date Marzo 2013
  */
package sgeb;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JOptionPane;

public class Administrativo extends Persona {

    private Integer id;
    private String dni;
    
    /*Constructor por defecto*/
    public Administrativo() {
    }

    /*Constructor que obtiene los datos de un administrador de la BD a través de su DNI*/
    public Administrativo(String dni) {
        try {
            conectar cc = new conectar();
            Connection cn = cc.conexion();
            String sql="SELECT * FROM administrativo, persona WHERE persona.dni='"+dni+"' and administrativo='"+dni+"'";
            Statement st = cn.createStatement();
            ResultSet rs = st.executeQuery(sql);
            this.dni = dni;            
            this.id=(rs.getInt("administrativo.id"));
            this.setNombre(rs.getString("personas.nombre"));
            this.setApellidos(rs.getString("personas.apellidos"));
            this.setCorreo(rs.getString("personas.correo"));
            this.setCp(rs.getInt("personas.cp"));
            this.setDireccion(rs.getString("personas.direccion"));
            this.setFechaIngreso(rs.getDate("personas.fechaIngreso"));
            this.setFechaNacimiento(rs.getDate("personas.fechaNacimiento"));
            this.setLocalidad(rs.getString("personas.localidad"));
            this.setProvincia(rs.getString("personas.provincia"));
            this.setTefFijo(rs.getInt("personas.telFijo"));
            this.setTefMovil(rs.getInt("personas.telMovil"));            
        } catch (SQLException ex) {
            Logger.getLogger(Administrativo.class.getName()).log(Level.SEVERE, null, ex);
        }               
    }

    /*Constructor con parametros*/
    public Administrativo(String dni,String nombre,String apellidos,Date fechaNacimiento,String direccion,String localidad,String provincia,int cp,Date fechaIngreso,int telFijo,int telMovil,String correo){
        this.dni=dni;                               //DNI
        this.setNombre(nombre);                     //Nombre
        this.setApellidos(apellidos);               //Apellidos
        this.setCorreo(correo);                     // Correo Electronico
        this.setCp(cp);                             //Codigo Postal
        this.setDireccion(direccion);               //Dirección
        this.setFechaIngreso(fechaIngreso);         //Fecha de ingreso 
        this.setFechaNacimiento(fechaNacimiento);   //Fecha Nacimiento
        this.setLocalidad(localidad);               //Localidad
        this.setProvincia(provincia);               //Provincia
        this.setTefFijo(telFijo);                   //Telefono Fijo 
        this.setTefMovil(telMovil);                 //Telefono Movil
        
    }

    /*Constructor*/
    public Administrativo(Integer id) {
        this.id = id;
    }

    /*Devuelve el ID de un administrativo*/
    public Integer getId() {
        return id;
    }
    
    /*Asigna un ID a un administrativo*/
    public void setId(Integer id) {
        this.id = id;
    }

    /*Devuelve el DNI de un administrativo*/
    public String getDni() {
        return dni;
    }
    
    /*Asigna un DNI a un administrativo*/
    public void setDni(String dni) {
        this.dni = dni;
    }
    
    /*Guarda en la BD los datos de un administrativo*/
    public int guardarAdmin(Administrativo admin){
        
        admin.guardarPer(admin.getDni(),admin.getNombre(),admin.getApellidos(),admin.getFechaNacimiento(),admin.getDireccion(),admin.getLocalidad(),admin.getProvincia(),admin.getCp(),admin.getFechaIngreso(),admin.getTefFijo(),admin.getTefMovil(),admin.getCorreo(),admin.getSexo());
        conectar cc = new conectar();
        Connection cn = cc.conexion();
        //http://www.youtube.com/watch?v=ySzC78xloxY
        String sql="INSERT INTO administrativo (dni) VALUES (?)";
        try {
            PreparedStatement pst = cn.prepareStatement(sql);
            // TODO add your handling code here:
            pst.setString(1, admin.getDni());
            int n=pst.executeUpdate();
            if (n>0) {
               //JOptionPane.showMessageDialog(null,"entrenador guardado");
            }
        } catch (SQLException ex) {
           Logger.getLogger(Administrativo.class.getName()).log(Level.SEVERE, null, ex);        }
        return 0;
    }
   
    
}